package br.com.depilchik.agenda.entidade;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.com.depilchik.cliente.entidade.Cliente;
import br.com.depilchik.funcionario.entidade.Funcionario;
import br.com.depilchik.servico.entidade.Servico;

@Entity
@Table(name = "agenda")
public class Agenda implements Serializable {
	private static final long serialVersionUID = -929672948319978679L;

	@Id
	@GeneratedValue
	private Long id;

	@Column(nullable = false)
	@Temporal(TemporalType.DATE)
	private Date data;

	@Column(nullable = false)
	@Temporal(TemporalType.TIME)
	private Date hora;

	@ManyToOne
	private Funcionario funcionario;

	@ManyToOne
	private Cliente cliente;

	@ManyToMany
	private List<Servico> servicos;

	@Temporal(TemporalType.TIMESTAMP)
	private Date dataCriacao;

	private boolean cancelou;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public Date getHora() {
		return hora;
	}

	public void setHora(Date hora) {
		this.hora = hora;
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public List<Servico> getServicos() {
		return servicos;
	}

	public void setServicos(List<Servico> servicos) {
		this.servicos = servicos;
	}

	public Date getDataCriacao() {
		return dataCriacao;
	}

	public void setDataCriacao(Date dataCriacao) {
		this.dataCriacao = dataCriacao;
	}

	public boolean isCancelou() {
		return cancelou;
	}

	public void setCancelou(boolean cancelou) {
		this.cancelou = cancelou;
	}
}
